package com.gp.node;

import java.io.Serializable;
import java.util.List;

import com.gp.node.operator.IFather;
import com.stock.StockData;

// interface for node in the GP tree
public interface INode extends Serializable {
	
	// return the stock value
	double getValue(StockData stock);
	
	// print the stock
	String print(StockData stock);
	String print();
	
	// create new node
	INode createNew();
	
	// return copy of the node
	INode copy();
	
	// recursively build list of the Father nodes in the tree 
	void fillFathers(List<IFather> ls);
	
	// recursively build list of all the nodes in the tree
	void fillAll(List<INode>ls);
}
